package com.youlai.boot.modules.game.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.modules.game.model.entity.GameAchievement;
import com.youlai.boot.modules.game.model.vo.GameAchievementVO;

import java.util.List;

/**
 * 游戏成就服务接口
 *
 * @author 有来技术团队
 */
public interface GameAchievementService extends IService<GameAchievement> {

    /**
     * 获取用户解锁的成就列表
     *
     * @param userId 用户ID
     * @return 成就列表
     */
    List<GameAchievementVO> getUserAchievements(Long userId);

    /**
     * 获取用户特定游戏的成就列表
     *
     * @param userId 用户ID
     * @param gameId 游戏ID
     * @return 成就列表
     */
    List<GameAchievementVO> getGameAchievements(Long userId, Long gameId);

    /**
     * 解锁用户成就
     *
     * @param userId 用户ID
     * @param achievementId 成就ID
     * @return 是否成功
     */
    boolean unlockAchievement(Long userId, Long achievementId);

    /**
     * 检查并解锁游戏时长相关成就
     *
     * @param userId 用户ID
     * @param playTime 游戏时长(秒)
     * @return 新解锁的成就列表
     */
    List<GameAchievementVO> checkAndUnlockPlayTimeAchievements(Long userId, Integer playTime);

    /**
     * 检查并解锁游戏进度相关成就
     *
     * @param userId 用户ID
     * @param progress 游戏进度(0-100)
     * @return 新解锁的成就列表
     */
    List<GameAchievementVO> checkAndUnlockProgressAchievements(Long userId, Integer progress);
} 